import { IRiskControlQueryParams, IRiskControlSchemePagination } from '@shared/interfaces/post-risk-control'
import { PostRiskScheme, RiskRules } from '@shared/interfaces/post-risk-control'
import { Observable } from 'rxjs'
import { IMCC, IMCCQuery } from '@shared/components/mcc-select/mcc-select.interface'
import { IGenericPagination } from '@shared/interfaces/pagination'
import { IGeneralResponse } from '@shared/interfaces/response'

export abstract class PostRiskService {
  constructor() { }
  abstract getList(queryParams: IRiskControlQueryParams): Observable<IRiskControlSchemePagination>

  abstract create(body: String): Observable<boolean>

  abstract getOne(schemeCode: string): Observable<PostRiskScheme>

  abstract update(schemeCode: string, body: string): Observable<IGeneralResponse | PostRiskScheme>

  abstract delete(schemeCode: string): Observable<IGeneralResponse>

  abstract getRules(): Observable<RiskRules[]>

  abstract getMccList(): Observable<IGenericPagination<IMCC>>
}
